﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;

namespace Quaack
{
    public partial class ZoekGebruiker : System.Web.UI.Page
    {
        protected void Page_PreInit(object sender, EventArgs e)
        {          
            //check of gebruiker is ingelogd of niet en stel juiste masterpage in
            string name = HttpContext.Current.User.Identity.Name;

            if (string.IsNullOrEmpty(name))
            {
                Page.MasterPageFile = "~/QuaackMasterSiteAnonymous.Master";
            }
            else
            {
                Page.MasterPageFile = "~/QuaackMasterSiteLoggedIn.Master";
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            Login1.FailureText = (string)GetLocalResourceObject("loginError.Text");
            
            // errorlabel verbergen
            lblError.Visible = false;

            // gebruikersnaam
            string name = HttpContext.Current.User.Identity.Name;

            // als er een gebruikers naam is login control verbergen
            if (string.IsNullOrEmpty(name))
            {
                Login1.Visible = true;
            }
            else
            {
                Login1.Visible = false;
                lblLoginHeader.Visible = false;
            }
        }

        protected void btnSearch_Click(object sender, EventArgs e)
        {
            if (this.txtSearch.Text.Length > 2)
            {
                // Zoek naar gebruikers op basis van de opgegeven query en maak hier een lijst van
                List<Gebruiker> GevondenGebruikers = new Zoeken().Gebruiker(this.txtSearch.Text);

                // Maak het zoekresultaat leeg
                this.pnlGebruikers.Controls.Clear();

                // Voeg alle gevonden gebruikers toe aan het zoekresultaatpaneel
                for (int i = 0; i < GevondenGebruikers.Count; i++)
                {
                    // Maak een nieuwe paneel voor de gebruiker
                    Panel pnlGebruiker = new Panel();
                    pnlGebruiker.CssClass = "zoekgebruiker_gebruiker";
                    pnlGebruiker.ToolTip = "Navigeer naar de eigenpagina van " + GevondenGebruikers[i].Gebruikersnaam;

                    // Maak een nieuwe instantie van een image voor de avatar
                    Image avatar = new Image();
                    avatar.ImageUrl = GevondenGebruikers[i].AvatarLocatie;
                    avatar.AlternateText = GevondenGebruikers[i].Gebruikersnaam;

                    // Maak een nieuwe instantie van de linkbutton
                    LinkButton lbtnGebruiker = new LinkButton();
                    lbtnGebruiker.PostBackUrl = "~/EigenPagina.aspx?Profiel=" + GevondenGebruikers[i].Gebruikersnaam;

                    // Maak een nieuwe literal voor de gebruikersnaam
                    Literal litGebruikersnaam = new Literal();
                    litGebruikersnaam.Text = GevondenGebruikers[i].Gebruikersnaam;

                    // Voeg de controls toe aan het gebruikerspaneel
                    pnlGebruiker.Controls.Add(avatar);
                    pnlGebruiker.Controls.Add(litGebruikersnaam);
                    lbtnGebruiker.Controls.Add(pnlGebruiker);

                    // Voeg het nieuwe zoekresultaat toe aan het paneel
                    this.pnlGebruikers.Controls.Add(lbtnGebruiker);
                }

                // Controleer of er gebruikers zijn gevonden
                if (GevondenGebruikers.Count > 0)
                {
                    // Indien er gebruikers zijn gevonden moet het resultaat in de popup worden weergegeven en eventuele foutmeldingen van de
                    // vorige zoekactie worden verborgen.
                    this.lblError.Visible = false;
                    this.pnlZoekresultaat.Visible = true;
                }
                else
                {
                    // Indien er geen gebruikers zijn gevonden moet de gebruiker hierop worden geattendeerd
                    this.lblError.Visible = true;
                    this.lblError.Text = "Er zijn helaas geen gebruikers gevonden die aan uw zoekopdracht voldoen.";
                }
            }
            else
            {
                // Indien er onvoldoende karakters ingevoerd zijn wordt de zoekactie gestaakt en moet de gebruiker hiervan op de hoogte worden gebracht
                this.lblError.Visible = true;
                this.lblError.Text = "U dient minstens drie karakters op te geven.";
            }
        }

        protected void btnGebruiker_Command(object sender, CommandEventArgs e)
        {
            // Zet de gebruikersnaam waarop is geklikt in de sessie
            Session["GebruikerEigenpagina"] = e.CommandArgument.ToString();

            // Navigeer naar de eigenpagina van deze gebruiker
            Response.Redirect("~/EigenPagina.aspx");
        }

        protected void btnSluiten_Click(object sender, EventArgs e)
        {
            // Sluit de popup
            this.pnlZoekresultaat.Visible = false;
        }
    }
}